layui.define(['element', 'layer', 'form', 'eleTree', 'common', 'jquery', 'laydate','textool','layedit'], function (exports) {
    var $ = layui.jquery
        , layer = layui.layer
        , form = layui.form
        , laydate = layui.laydate
        , layedit=layui.layedit
        , textool = layui.textool
        , eleTree = layui.eleTree
        , common = layui.common;
    //初始传入参数
    var _config = {};
    var view = {
        init: function (config) {
            _config = config;
            textool.init({
                // 根据元素 id 值单独渲染，为空默认根据 class='layext-text-tool' 批量渲染
                eleId: "remark",
                // 批量设置输入框最大长度，可结合 eleId 单独设置最大长度
                maxlength: -1,
                // 初始化回调，无参
                initEnd: $.noop,
                // 显示回调，参数为当前输入框和工具条面板的 jQuery 对象
                showEnd: $.noop,
                // 隐藏回调，参数为当前输入框和工具条面板的 jQuery 对象
                hideEnd: $.noop,
                // 初始化展开，默认展开，否则收起
                initShow: true,
                // 启用指定工具模块，默认依次为字数统计、复制内容、重置内容、清空内容，按数组顺序显示
                tools: ['count', 'copy', 'reset', 'clear'],
                // 工具按钮提示类型，默认为 'title' 属性，可选 'laytips'，使用 layer 组件的吸附提示， 其他值不显示提示
                tipType: 'title',
                // 吸附提示背景颜色
                tipColor: '#01AAED',
                // 对齐方向，默认右对齐，可选左对齐 'left'
                align: 'right',
                // 工具条字体颜色
                color: '#666666',
                // 工具条背景颜色
                bgColor: '#FFFFFF',
                // 工具条边框颜色
                borderColor: '#E6E6E6',
                // 工具条附加样式类名
                className: '',
                // z-index
                zIndex: 19891014
            });

            laydate.render({
                elem: '.ss-laydate'
            });


            layedit.set({
                //暴露layupload参数设置接口 --详细查看layupload参数说明
                uploadImage: {
                    url: '/common/layedit/upload',
                    accept: 'image',
                    acceptMime: 'image/*',
                    exts: 'jpg|png|gif|bmp|jpeg',
                    size: '10240',
                    done: function(res, index, upload){ //上传后的回调

                    }
                }
                , uploadVideo: {
                    url: '/common/layedit/upload',
                    accept: 'video',
                    acceptMime: 'video/*',
                    exts: 'mp4|flv|avi|rm|rmvb',
                    size: '20480'
                }
                //右键删除图片/视频时的回调参数，post到后台删除服务器文件等操作，
                //传递参数：
                //图片： imgpath --图片路径
                //视频： filepath --视频路径 imgpath --封面路径
                , calldel: {
                    url: '/common/layedit/remove'
                }
                //开发者模式 --默认为false
                , devmode: true
                //插入代码设置
                , codeConfig: {
                    hide: true,  //是否显示编码语言选择框
                    default: 'javascript' //hide为true时的默认语言格式
                }
                , tool: [
                    'html', 'code', 'strong', 'italic', 'underline', 'del', 'addhr', '|', 'fontFomatt', 'colorpicker', 'face'
                    , '|', 'left', 'center', 'right', '|', 'link', 'unlink', 'image_alt', 'video', 'anchors'
                    , '|', 'fullScreen'
                ]
                , height: '90%'
            });
            var ieditor = layedit.build('memo');

            form.render(null, 'form-dict');
            form.verify(
                {
                    memo:function (value) {
                        return layedit.sync(ieditor);
                    }
                });
            form.on('submit(btn-add)', function (data) {
                if (!common.isEmpty(_config.id)) {
                    data.field.id = _config.id;
                }
                if (true) {
                    $.ajax({
                        cache: false,
                        type: "POST",
                        url: common.isEmpty(_config.id) ? (prefix + "/add") : (prefix + "/edit"),
                        data: data.field,
                        async: false,
                        error: function (request) {
                            layer.msg("系统错误");
                        },
                        success: function (data) {
                            if (data.code > 0) {
                                layer.msg(data.msg);
                            } else {
                                var index = parent.layer.getFrameIndex(window.name);
                                parent.layer.close(index);
                                parent.layui.list.refreshTable();
                            }
                        }
                    });
                }
                return false;
            });
        },
        submit: function (config) {
            var iframeWindow = window['layui-layer-iframe' + config.index];
            var _form = $(window.frames["layui-layer-iframe" + config.index].document).contents().find("#btn-add");
            $(_form).click();
        }
    };
    exports("add", view);
});